Computer networks have become ubiquitous. One reason for this has been the widespread adoption of interoperable standards that allow computing systems and network infrastructure components from many different vendors to communicate with one another. For example, the TCP/IP standards have been adopted worldwide and are currently the overwhelmingly dominant (and open) standards used for computer networking. Currently, internet protocol version 4 (IPv4) is the protocol used for addressing network packets on the Internet. Traffic originating from a given host (or subnet) can be identified by the source address listed in an IPv4 packet. Because each host (or subnet) typically uses the same address (or range of address), the activity of a given host can be identified using the IP address. Uses of IP address tracking includes so called “black hole” lists, providing a list of hosts (by IP address) believed to be sending email spam, as well as tracking by commercial websites, which allows users' browsing habits to be correlated across multiple visits (or across multiple web sites). At the same time, some mechanisms (e.g., the use of an anonymous proxy server) are used to try and obscure the true IP address used by a given host.
IPv4 was formally adopted as a standard in September 1981 and is showing signs of strain. For example, IPv4 uses a 32-bit address (customarily written using four octets) to uniquely identify each host. This and other constraints of the protocol limit the useable address space of IPv4 to roughly 3.7 billion addresses. This limitation has been recognized for quite some time and techniques have been developed to work around it. For example, NAT (network address translation) allows private subnets to reuse certain specific IP addresses behind a live, routable IP address assigned to a gateway routing device.
While NAT has helped alleviate the issue, IP address space exhaustion remains a significant problem. In fact, ARIN (the American Registry for Internet Numbers) allocated the last unused block of IPv4 addresses in February 2011. Internet protocol version 6 (IPv6) is a version of the internet protocol designed to supplant IPv4. The address space provided by IPv6 is both very abundant and sparsely populated. For example, the IP Version 6 Addressing Architecture (documented in RFC 4291) calls for a minimum allocation of 264 addresses for any subnet (i.e., the minimum subnet size in IPv6 is 4.3 million times as large as the entire IPv4 address space). At the same time, a typical IPv6 subnet population tends to be in the dozens to a few thousand distinct hosts. IPv6 provides a 128-bit address space designed to provide roughly 3.4×1038 unique addresses. This provides an address space large enough to assign many trillions of addresses to every human being on the planet.